package org.example.Server.mapper.semester;

import org.apache.ibatis.annotations.Mapper;
import org.example.Server.model.semester.*;

import java.util.List;

@Mapper
public interface SemesterMapper {

    List<SemesterVO> getSemesterPersonalList(Integer techId);

    boolean addSemester(SemesterDTO semesterDTO);

    List<SemDivisonVO> getDivision(Integer semesterId);

    SemesterVO getSemesterById(Integer semester_id, Integer tech_id);

    void updateVisitCnt(Integer semesterId);

    List<SemData> getSemesterData(Integer semId);

    List<SemStuVO> getSemesterStuList(int stuId);

    int getSemIdByCode(String semesterCode);

    SemesterVO getSemStu(SemAddStu semAddStu);

    void addSemesterStu(SemAddStu semAddStu);

    void addSemTech(Integer semId, Integer techId, int identity);

    SemesterVO getSemStuDetail(Integer stuId, Integer semesterId);

    List<SemActiveness> getActiveness(Integer semId);

    List<SemHmkData> getHmkScoreRate(Integer semId);

    List<SemHmkLevel> getHmkLevel(Integer semId);

    void deleteSem(Integer semId);

    void updateSem(SemesterDTO semesterDTO);

    List<SemStuHmkData> getStuHmkData(Integer stuId, Integer semId);

    List<SemStuExamData> getStuExamData(Integer stuId, Integer semId);

    String getIntro(Integer semId);

    List<SemStuDivsion> getSemStuDivList(Integer semId, Integer divisionId);

    void updateStuDivision(SemStuDivsion semStuDivsion);

    void updateDelDiv(Integer divisionId);

    void deleteDivision(Integer divisionId);

    void deleteStuSem(Integer stuSemesterId);

    void addDivision(SemDivisonDTO semDivisonDTO);
}
